package fr.ants.model.stats;

/**
 * Statistics related to a nest gathered during a cycle.
 *
 * @author Vianney DUPOY DE GUITARD
 *
 */
public class NestStatistics {

	/** Number of ants that currently belong to this nest. */
	private int antCount = 0;

	/** Ant steps in 'exploring' mode. */
	private int antExploreSteps = 0;

	/** Ant steps in 'follow pheromones' mode. */
	private int antFollowSteps = 0;

	/** Ant steps in 'returning to nest' mode. */
	private int antToNestSteps = 0;

	/** Ant crops. */
	private int antCrops = 0;

	/** Ant depose. */
	private int antDeposits = 0;

	/** Amount of resources possessed by this nest. */
	private float resourceCount = 0;

	/** Amount of resources carried by the ants coming to this nest. */
	private float resourcesInTransit = 0;

	/**
	 * @return the antCount
	 */
	public int getAntCount() {
		return antCount;
	}

	/**
	 * @param antCount the antCount to set
	 */
	public void setAntCount(int antCount) {
		this.antCount = antCount;
	}

	/**
	 * @return the resourceCount
	 */
	public float getResourceCount() {
		return resourceCount;
	}

	/**
	 * @param f the resourceCount to set
	 */
	public void setResourceCount(float f) {
		this.resourceCount = f;
	}

	/** Increments the exploring steps counter. */
	public void increaseAntExploreSteps() {
		antExploreSteps++;
	}

	/** Increments the 'following pheromones' steps counter. */
	public void increaseAntFollowSteps() {
		antFollowSteps++;
	}

	/** Increments the 'returning to nest' steps counter. */
	public void increaseAntToNestSteps() {
		antToNestSteps++;
	}

	/** Increments the crop counter. */
	public void increaseAntCrops() {
		antCrops++;
	}

	/** Increments the deposit counter. */
	public void increaseAntDeposits() {
		antDeposits++;
	}

	/**
	 * @return the antExploreSteps
	 */
	public int getAntExploreSteps() {
		return antExploreSteps;
	}

	/**
	 * @return the antFollowSteps
	 */
	public int getAntFollowSteps() {
		return antFollowSteps;
	}

	/**
	 * @return the antToNestSteps
	 */
	public int getAntToNestSteps() {
		return antToNestSteps;
	}

	/**
	 * @return the antCrops
	 */
	public int getAntCrops() {
		return antCrops;
	}

	/**
	 * @return the antDeposits
	 */
	public int getAntDeposits() {
		return antDeposits;
	}

	/**
	 * @return the resourcesInTransit
	 */
	public float getResourcesInTransit() {
		return resourcesInTransit;
	}

	/**
	 * @param resourcesInTransit the resourcesInTransit to add.
	 */
	public void addResourcesInTransit(float resourcesInTransit) {
		this.resourcesInTransit += resourcesInTransit;
	}
}
